perm filename X[1,BGB] blob
sn#051786 filedate 1973-07-03 generic text, type T, neo UTF8
␈↓ ↓⊗-------- QQ.RPG ------ 1 -----------␈↓ εK-------- QQ.RPG ------ 2 -----------
␈↓ ↓⊗ 0 RESET 400015 CORE2 | 16 APRENB 21 REASSI
␈↓ εK040 CALL 700 no-op
␈↓ ↓⊗ 1 DDTIN 400016 ATTSEG | 400016 ATTSEG 37 REMAP
␈↓ εK041 INIT 701 DPYCLR
␈↓ ↓⊗ 2 SETDDT 400017 DETSEG | 400042 BUFLEN 0 RESET
␈↓ εK042 -- 702 *PPIOT
␈↓ ↓⊗ 3 DDTOUT 400020 SETPRO | 11 CORE 400054 RLEVEL
␈↓ εK043 SPCWAR 703 UPGIOT
␈↓ ↓⊗ 4 DEVCHR 400021 SEGNUM | 400015 CORE2 35 RUN
␈↓ εK044 -- 704 UINBF
␈↓ ↓⊗ 5 DDTGT 400022 SEGSIZ | 400001 CTLV 400046 RUNMSK
␈↓ εK045 -- 705 UOUTBF
␈↓ ↓⊗ 6 GETCHR 400023 LINKUP | 14 DATE 27 RUNTIM
␈↓ εK046 -- 706 FBREAD
␈↓ ↓⊗ 7 DDTRL 400024 DISMIS | 400067 DDCHAN 400037 SEGNAM
␈↓ εK047 CALLI 707 FBWRT
␈↓ ↓⊗ 10 WAIT 400025 INTENB | 5 DDTGT 400021 SEGNUM
␈↓ εK050 OPEN 710 *MAIL
␈↓ ↓⊗ 11 CORE 400026 INTORM | 1 DDTIN 400022 SEGSIZ
␈↓ εK051 *TTYUUO 711 *PTYUUO
␈↓ ↓⊗ 12 EXIT 400027 INTACM | 3 DDTOUT 400073 SETCRD
␈↓ εK052 -- 712 POINTS
␈↓ ↓⊗ 13 UTPCLR 400030 INTENS | 7 DDTRL 2 SETDDT
␈↓ εK053 -- 713 UPGMVE
␈↓ ↓⊗ 14 DATE 400031 INTIIP | 400035 DEBREAK 400002 SETNAM
␈↓ εK054 -- 714 UPGMVM
␈↓ ↓⊗ 15 LOGIN 400032 INTIRQ | 400017 DETSEG 400036 SETNM2
␈↓ εK055 RENAME 715 *PGIOT
␈↓ ↓⊗ 16 APRENB 400033 INTGEN | 4 DEVCHR 32 SETPOV
␈↓ εK056 IN 716 CHNSTS
␈↓ ↓⊗ 17 LOGOUT 400034 UWAIT | 400051 DEVUSE 400020 SETPRO
␈↓ εK057 OUT 717 CLKINT
␈↓ ↓⊗ 20 SWITCH 400035 DEBREAK | 400024 DISMIS 400066 SETPRV
␈↓ εK060 SETSTS 720 INTMSK
␈↓ ↓⊗ 21 REASSI 400036 SETNM2 | 400071 DSKPPN 400052 SETPR2
␈↓ εK061 STATO 721 IMSKST
␈↓ ↓⊗ 22 TIMER 400037 SEGNAM | 400072 DSKTIM 36 SETUWP
␈↓ εK062 GETSTS 722 IMSKCL
␈↓ ↓⊗ 23 MSTIME 400040 IWAIT | 400005 EIOTM 31 SLEEP
␈↓ εK063 STATZ 723 *INTUUO
␈↓ ↓⊗ 24 GETPPN 400041 USKIP | 12 EXIT 400044 SLEVEL
␈↓ εK064 INBUF
␈↓ ↓⊗ 25 TRPSET 400042 BUFLEN | 400057 FBWAIT 400064 SNEAKS
␈↓ εK065 OUTBUF
␈↓ ↓⊗ 26 TRPJEN 400043 NAMEIN | 400065 GDPTIM 400063 SNEAKW
␈↓ εK066 INPUT
␈↓ ↓⊗ 27 RUNTIM 400044 SLEVEL | 6 GETCHR 400000 SPCWAR
␈↓ εK067 OUTPUT UUOs marked -- are illegal.
␈↓ ↓⊗ 30 PJOB 400045 IENBW | 34 GETLIN 400003 SPCWGO
␈↓ εK070 CLOSE UUOs marked with * are extended
␈↓ ↓⊗ 31 SLEEP 400046 RUNMSK | 400062 GETNAM 400004 SWAP
␈↓ εK071 RELEAS UUOs that use the AC field to
␈↓ ↓⊗ 32 SETPOV 400047 TTYMES | 24 GETPPN 20 SWITCH
␈↓ εK072 MTAPE determine the exact meaning.
␈↓ ↓⊗ 33 PEEK 400050 JOBRD | 400053 GETPR2 22 TIMER
␈↓ εK073 UGETF
␈↓ ↓⊗ 34 GETLIN 400051 DEVUSE | 40 GETSEG 26 TRPJEN
␈↓ εK074 USETI
␈↓ ↓⊗ 35 RUN 400052 SETPR2 | 41 GETTAB 25 TRPSET
␈↓ εK075 USETO
␈↓ ↓⊗ 36 SETUWP 400053 GETPR2 | 400045 IENBW 400014 TTYIOS
␈↓ εK076 LOOKUP
␈↓ ↓⊗ 37 REMAP 400054 RLEVEL | 400027 INTACM 400047 TTYMES
␈↓ εK077 ENTER
␈↓ ↓⊗ 40 GETSEG 400055 UFBPHY | 400025 INTENB 400012 UFBCLR
␈↓ εK
␈↓ ↓⊗ 41 GETTAB 400056 UFBSKP | 400030 INTENS 400060 UFBERR
␈↓ εK
␈↓ ↓⊗ 400057 FBWAIT | 400033 INTGEN 400010 UFBGET
␈↓ εK
␈↓ ↓⊗400000 SPCWAR 400060 UFBERR | 400031 INTIIP 400011 UFBGIV
␈↓ εK
␈↓ ↓⊗400001 CTLV 400061 WAKEME | 400032 INTIRQ 400055 UFBPHY
␈↓ εK
␈↓ ↓⊗400002 SETNAM 400062 GETNAM | 400026 INTORM 400056 UFBSKP
␈↓ εK
␈↓ ↓⊗400003 SPCWGO 400063 SNEAKW | 400040 IWAIT 400041 USKIP
␈↓ εK
␈↓ ↓⊗400004 SWAP 400064 SNEAKS | 400013 JBTSTS 13 UTPCLR
␈↓ εK
␈↓ ↓⊗400005 EIOTM 400065 GDPTIM | 400050 JOBRD 400034 UWAIT
␈↓ εK
␈↓ ↓⊗400006 LIOTM 400066 SETPRV | 400023 LINKUP 400070 VDSMAP
␈↓ εK
␈↓ ↓⊗400007 PNAME 400067 DDCHAN | 400006 LIOTM 10 WAIT
␈↓ εK
␈↓ ↓⊗400010 UFBGET 400070 VDSMAP | 15 LOGIN 400061 WAKEME
␈↓ εK-------- QQ.RPG ------ 3 -----------
␈↓ ↓⊗400011 UFBGIV 400071 DSKPPN | 17 LOGOUT
␈↓ εKTTYUUO 0, INCHRW PTYUUO 0, PTYGET
␈↓ ↓⊗400012 UFBCLR 400072 DSKTIM | 23 MSTIME
␈↓ εK 1, OUTCHR 1, PTYREL
␈↓ ↓⊗400013 JBTSTS 400073 SETCRD | 400043 NAMEIN
␈↓ εK 2, INCHRS 2, PTIFRE
␈↓ ↓⊗400014 TTYIOS | 33 PEEK
␈↓ εK 3, OUTSTR 3, PTOCNT
␈↓ ↓⊗ | 30 PJOB
␈↓ εK 4, INCHWL 4, PTRD1S
␈↓ ↓⊗ | 400007 PNAME
␈↓ εK 5, INCHSL 5, PTRD1W
␈↓ ↓⊗␈↓ εK 6, GETLIN 6, PTWR1S
␈↓ ↓⊗␈↓ εK 7, SETLIN 7, PTWR1W
␈↓ ↓⊗␈↓ εK 10, RESCAN 10, PTRDS
␈↓ ↓⊗␈↓ εK 11, CLRBFI 11, PTWRS7
␈↓ ↓⊗␈↓ εK 12, CLRBFO 12, PTWRS9
␈↓ ↓⊗␈↓ εK 13, INSKIP 13, PTGETL
␈↓ ↓⊗␈↓ εK 14, INWAIT 14, PTSETL
␈↓ ↓⊗␈↓ εK 15, SETACT 15, PTLOAD
␈↓ ↓⊗␈↓ εK 16, TTREAD 16, PTJOBX
␈↓ ↓⊗␈↓ εK 17, no-op 17, --
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εKPPIOT 0, PPSEL PGIOT 0, PGSEL
␈↓ ↓⊗␈↓ εK 1, PPACT 1, PGACT
␈↓ ↓⊗␈↓ εK 2, DPYPOS 2, PGCLR
␈↓ ↓⊗␈↓ εK 3, DPYSIZ 3, DDUPG
␈↓ ↓⊗␈↓ εK 4, PPREL 4, PGINFO
␈↓ ↓⊗␈↓ εK 5, PPINFO
␈↓ ↓⊗␈↓ εK 6, LEYPOS
␈↓ ↓⊗␈↓ εK 7, PPHLD
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εKINTUUO 0, INTJEN MAIL 0, SEND
␈↓ ↓⊗␈↓ εK 1, IMSTW 1, WRCV
␈↓ ↓⊗␈↓ εK 2, IWKMSK 2, SRCV
␈↓ ↓⊗␈↓ εK 3, INTDMP 3, SKPME
␈↓ ↓⊗␈↓ εK 4, INTIPI 4, SKPHIM
␈↓ ↓⊗␈↓ εK 5, SKPSEN
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗-------- QQ.RPG ------ 4 -----------␈↓ εK 177 \
␈↓ ↓⊗ III DISPLAY INSTRUCTIONS
␈↓ εK
␈↓ ↓⊗
␈↓ εKJMP Jump OP-CODE 20
␈↓ ↓⊗TSS Test, SET, and Skip OP-CODE 12
␈↓ εK _________________________________ _____________________ ___________
␈↓ ↓⊗ ___________ ____________ ___________ ___________ _______ __________
␈↓ εK|0 17|18 30|31 35|
␈↓ ↓⊗|0 7|8 15|16 23|24 30| 31 |32 35|
␈↓ εK| A | unused | 10000 |
␈↓ ↓⊗| RESET | SET | TEST | unused | I | 1010 |
␈↓ εK|_________________________________|_____________________|___________|
␈↓ ↓⊗|___________|____________|___________|___________|_______|__________|
␈↓ εK
␈↓ ↓⊗
␈↓ εK The processor jumps to location A and continues executing.
␈↓ ↓⊗ A skip condition is generated if any of the eight flags is on
␈↓ εK
␈↓ ↓⊗and the corresponding bit in the TEST field is on. If the exclusive
␈↓ εKHLT Halt OP-CODE 00
␈↓ ↓⊗or of the skip condition and bit 31 is true, the next instruction is
␈↓ εK _________________________________ _____________________ ___________
␈↓ ↓⊗skipped. The flags are then set or reset according to the set and
␈↓ εK|0 17|18 30|31 35|
␈↓ ↓⊗reset field. If both set and reset bits are on, the corresponding
␈↓ εK| unused | unused | 00000 |
␈↓ ↓⊗flag is complemented. The flags are as follows:
␈↓ εK|_________________________________|_____________________|___________|
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗BITS FLAG
␈↓ εK The processor stops with its MA pointing to the location
␈↓ ↓⊗0,8,16 Control bit. This bit may be set, reset, and tested
␈↓ εKfollowing the HALT. The not running flag is turned on.
␈↓ ↓⊗ but has no other meaning to the processor.
␈↓ εK
␈↓ ↓⊗1,9,17 Light pen flag. The bit is set if the light pen is
␈↓ εKJSR Jump to subroutine OP-CODE 24
␈↓ ↓⊗ seen.
␈↓ εK _________________________________ _____________________ ___________
␈↓ ↓⊗2,10,18 Edge overflow flag. This bit is set if the beam is
␈↓ εK|0 17|18 30|31 35|
␈↓ ↓⊗ ever positioned off the screen by any means.
␈↓ εK| A | unused | 10100 |
␈↓ ↓⊗3,11,19 Wrap-around flag. This bit is set if overflow occurs
␈↓ εK|_________________________________|_____________________|___________|
␈↓ ↓⊗ in incremental vector mode.
␈↓ εK
␈↓ ↓⊗4,12,20 Not running mask. If this bit is on, the processor
␈↓ εK This instruction saves a PC word into location A and then
␈↓ ↓⊗ will interrupt if a halt is executed. This bit
␈↓ εKexecutes code from location A + 1. The PC word is in the same format
␈↓ ↓⊗ cannot be set or reset by this instruction.
␈↓ εKas the word stored in location A by the JMS instruction. The word is
␈↓ ↓⊗5,13,21 Light pen mask. If this bit is on, the processor
␈↓ εKalso a jump instruction so that the subroutine return can be simply a
␈↓ ↓⊗ will interrupt if the light pen flag comes on.
␈↓ εKjump to A.
␈↓ ↓⊗6,14,22 Edge overflow mask. If this bit is on, the processor
␈↓ εK
␈↓ ↓⊗ will interrupt if the edge overflow flag comes on.
␈↓ εKJMS Jump to subroutine and save OP-CODE 04
␈↓ ↓⊗7,15,23 Wrap-around mask. If this bit is on, the processor
␈↓ εK _________________________________ ______________________ __________
␈↓ ↓⊗ will interrupt if the wrap-around flag comes on.
␈↓ εK|0 17|18 31|32 35|
␈↓ ↓⊗
␈↓ εK| A | unused | 0100 |
␈↓ ↓⊗LVW Long vector word OP-CODE 06
␈↓ εK|_________________________________|______________________|__________|
␈↓ ↓⊗ ___________ ___________ _________ _________ __ _____ _____ ________
␈↓ εK
␈↓ ↓⊗|0 10|11 21|22 24|25 27|28| 29 |30 31|32 35|
␈↓ εK(This instruction is illegal at user level.) The following word of
␈↓ ↓⊗| X | Y | BRT | SIZE | | M | T | 0110 |
␈↓ εKinformation is written into location A:
␈↓ ↓⊗|___________|___________|_________|_________|__|_____|_____|________|
␈↓ εK _________________________________ ____________ __________ _________
␈↓ ↓⊗
␈↓ εK|0 17|18 22|23 30|31 35|
␈↓ ↓⊗ The long vector word draws one vector with mode, type and
␈↓ εK| MA | CPC | unused | 10000 |
␈↓ ↓⊗brightness as specified by the M, T, and BRT fields respectively. A 0
␈↓ εK|_________________________________|____________|__________|_________|
␈↓ ↓⊗in the BRT field indicates no change in brightness. 1 is the dimmest
␈↓ εK
␈↓ ↓⊗intensity and 7 the brightest. The brightness affects all vectors
␈↓ εK CPC: The contents of the CPC buffer register. This register
␈↓ ↓⊗and characters until reset by another long vector word.
␈↓ εKis loaded whenever the processor discovers an interrupt condition
␈↓ ↓⊗ Mode 0 indicates relative mode and 1 indicates absolute mode.
␈↓ εKwhile processing a character word or short vector word. It is set to
␈↓ ↓⊗ Type: 0-visible
␈↓ εKthe number of the character being displayed (0-4) or the number of
␈↓ ↓⊗ 1-end point
␈↓ εKthe vector of the short vector word (0-1). It is reset by a CONO
␈↓ ↓⊗ 2-invisible
␈↓ εK430, with the clear flags bit on.
␈↓ ↓⊗ 3-undefined, currently end point
␈↓ εK The following information is written in location A+1:
␈↓ ↓⊗
␈↓ εK _____________ _____________ ___________ ___________ _______________
␈↓ ↓⊗ Characters/line Lines/screen
␈↓ εK|0 10|11 21|22 24|25 27|28 35|
␈↓ ↓⊗ 0 no change
␈↓ εK| X | Y | BRT | SIZE | FLAGS |
␈↓ ↓⊗ 1 smallest 128 64
␈↓ εK|_____________|_____________|___________|___________|_______________|
␈↓ ↓⊗ 2 85 42
␈↓ εK
␈↓ ↓⊗ 3 73 36
␈↓ εK The following are the flag bits:
␈↓ ↓⊗ 4 64 32
␈↓ εK bit 28-control bit
␈↓ ↓⊗ 5 42 21
␈↓ εK bit 29-light pen flag
␈↓ ↓⊗ 6 32 16
␈↓ εK bit 30-edge overflow flag
␈↓ ↓⊗ 7 largest 21 10
␈↓ εK bit 31-wrap around flag
␈↓ ↓⊗
␈↓ εK bit 32-wrap around mask
␈↓ ↓⊗
␈↓ εK bit 33-light pen mask
␈↓ ↓⊗SVW Short vector word OP-CODE 02
␈↓ εK bit 34-edge overflow mask
␈↓ ↓⊗ _________ _________ ________ _________ _________ ________ __________
␈↓ εK bit 35-always 1
␈↓ ↓⊗|0 6|7 13|14 15|16 22|23 29|30 31|32 35|
␈↓ εK The program then continues executing at A+2.
␈↓ ↓⊗| dX1 | dY1 | T1 | dX2 | dY2 | T1 | 0010 |
␈↓ εK Note that A is in the form of a jump instruction. This
␈↓ ↓⊗|_________|_________|________|_________|_________|________|_________|
␈↓ εKpermits subroutine exit to be done by jumping to A.
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗ The short vector word always draws two vectors in relative
␈↓ εKSAVE Save OP-CODE 64
␈↓ ↓⊗mode. The type of each vector is specified by the corresponding T
␈↓ εK_____________________________________________________________________
␈↓ ↓⊗field. The high order bits of the dX and dY fields are extended left
␈↓ εK|0 17|18 29|30 35|
␈↓ ↓⊗to give 11-bit quantities.
␈↓ εK| A | unused | 110100 |
␈↓ ↓⊗
␈↓ εK|_________________________________|_____________________|___________|
␈↓ ↓⊗CHR Character word OP-CODE 1
␈↓ εK
␈↓ ↓⊗ ___________ ___________ ___________ ___________ ___________ ________
␈↓ εK The save instruction saves a position word in
␈↓ ↓⊗|0 6|7 13|14 20|21 27|28 34| 35 |
␈↓ εKlocation A. This word is in the same format as the word put into A+1
␈↓ ↓⊗| character | character | character | character | character | |
␈↓ εK1 by the JMS instruction and is in the correct format to be used by
␈↓ ↓⊗| 1 | 2 | 3 | 4 | 5 | 1 |
␈↓ εKthe Restore instruction.
␈↓ ↓⊗|___________|___________|___________|___________|___________|_______|
␈↓ εK
␈↓ ↓⊗
␈↓ εKREST Restore OP-CODE 14
␈↓ ↓⊗ The characters are displayed in order from left to right with
␈↓ εK_____________________________________________________________________
␈↓ ↓⊗automatic spacing. All characters are displayed as printed on the
␈↓ εK|0 17|18 29| 30 | 31 |32 35|
␈↓ ↓⊗line printer with the following exceptions:
␈↓ εK| B | unused | P | F | 1100 |
␈↓ ↓⊗ CODE PRINTS AS
␈↓ εK|_________________________________|____________|_____|_____|________|
␈↓ ↓⊗ 011 ignored
␈↓ εK
␈↓ ↓⊗ 013 integral sign
␈↓ εK The contents of location B are assumed to be in the format of
␈↓ ↓⊗ 014 plus or minus
␈↓ εKthe word stored in location A+1 by a JMS or the word stored in
␈↓ ↓⊗location A by a SAVE. If bit 30 is a 1, the X and Y position
␈↓ εK Data is irrelephant.
␈↓ ↓⊗registers and the size and brightness registers are reloaded from the
␈↓ εK 1 function code: Loads function code register. Bits
␈↓ ↓⊗corresponding fields of this word. If bit 31 is a 1, the flags are
␈↓ εK will be explained later.
␈↓ ↓⊗restored.
␈↓ εK 2 channel select: Channel specified in data is selected
␈↓ ↓⊗
␈↓ εK for writing. If erase bit is on and
␈↓ ↓⊗SEL SELECT (console) OP-CODE 10
␈↓ εK graphics mode bit is set, the channel
␈↓ ↓⊗_____________________________________________________________________
␈↓ εK selected is erased to the background
␈↓ ↓⊗|0 11|12 23|24 31|32 35|
␈↓ εK selected by the dark/light bit.
␈↓ ↓⊗| SET | RESET | unused | 1000 |
␈↓ εK 3 column select: Data is loaded into the column
␈↓ ↓⊗|____________________|_____________________|_______________|________|
␈↓ εK register and the line buffer address
␈↓ ↓⊗
␈↓ εK register. This sets the X position
␈↓ ↓⊗ If any of bits 0-11 are 1, the corresponding consoles are
␈↓ εK of your output. Column 0 is illegal
␈↓ ↓⊗selected. If any of bits 12-23 are 1, the consoles are deselected.
␈↓ εK and will hang the controller. Column
␈↓ ↓⊗If both the select and de-select bits are on, the state of selection
␈↓ εK 85 is the last column to be displayed
␈↓ ↓⊗of that console will be complemented.
␈↓ εK with characters; characters sent for
␈↓ ↓⊗␈↓ εK columns 86-128 are flushed, over 128,
␈↓ ↓⊗␈↓ εK you wrap around. A column select
␈↓ ↓⊗␈↓ εK greater than 85 will also hang the
␈↓ ↓⊗␈↓ εK controller. The last graphics column
␈↓ ↓⊗␈↓ εK is 64 and columns greater than that
␈↓ ↓⊗␈↓ εK will hang the controller.
␈↓ ↓⊗␈↓ εK 4 high order Data is loaded into the high order
␈↓ ↓⊗␈↓ εK line address: 5 bits of the line address.
␈↓ ↓⊗␈↓ εK 5 low order Data is loaded into the low order 4
␈↓ ↓⊗␈↓ εK line address: bits of the line address. Line range
␈↓ ↓⊗␈↓ εK is from 0 to 541 (octal). Line
␈↓ ↓⊗␈↓ εK addresses between 542 and 777 cause
␈↓ ↓⊗␈↓ εK execute commands to be ignored.
␈↓ ↓⊗␈↓ εK Above 777 wraps around.
␈↓ ↓⊗␈↓ εK 6 write directly: Data is written directly on the disc
␈↓ ↓⊗␈↓ εK at the location previously set up
␈↓ ↓⊗␈↓ εK without using the line buffer. The
␈↓ ↓⊗␈↓ εK column address is automatically
␈↓ ↓⊗␈↓ εK incremented. Executes are not
␈↓ ↓⊗␈↓ εK necessary.
␈↓ ↓⊗␈↓ εK 7 line buffer Data is loaded into the line buffer
␈↓ ↓⊗␈↓ εK address: address only. This allows some of
␈↓ ↓⊗␈↓ εK of the line buffer contents to be
␈↓ ↓⊗␈↓ εK changed and the rest retained. The
␈↓ ↓⊗␈↓ εK first character displayed will be the
␈↓ ↓⊗␈↓ εK one specified by the column address,
␈↓ ↓⊗␈↓ εK and the last character will be the
␈↓ ↓⊗␈↓ εK last one sent after this command.
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗-------- QQ.RPG ------ 5 -----------␈↓ εK
␈↓ ↓⊗ DATA DISC
␈↓ εK The function code register has the following format:
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗Text word.
␈↓ εK 8 7 6 5 4 3 2 1
␈↓ ↓⊗ ___________________________________________________________
␈↓ εK _______________________________________________________________
␈↓ ↓⊗|0 6|7 13|14 20|21 27|28 35| 35|
␈↓ εK| | |single | space |2 wide | dark | write |graphic|
␈↓ ↓⊗| chr1 | chr2 | chr3 | chr4 | chr5 | 1 |
␈↓ εK|unused |unused |height | (add) |(erase)| back |enable | mode | 1
␈↓ ↓⊗|__________|____________|__________|__________|_________|___|
␈↓ εK|_______|_______|_______|_______|_______|_______|_______|_______|
␈↓ ↓⊗
␈↓ εK| | |double |nospace| | light |display| alpha |
␈↓ ↓⊗Upon receiving a text word, the interface sends the characters to the
␈↓ εK|unused |unused |height | (rep) |1 wide | back |direct |numeric| 0
␈↓ ↓⊗disc's line buffer. Tabs and backspaces are ignored unless
␈↓ εK|_______|_______|_______|_______|_______|_______|_______|_______|
␈↓ ↓⊗preceeded by a backspace (177) in which case, a special character is
␈↓ εK MSB | | LSB |
␈↓ ↓⊗printed (i.e. a small tb is printed for tab). Nulls are always
␈↓ εK
␈↓ ↓⊗ignored. Carriage return and line feed are specially processed to do
␈↓ εK single height/double height: Single height characters are
␈↓ ↓⊗the right thing: If characters have been transmitted since the last
␈↓ εK40 12 lines tall; 10 lines above the "base" line and 2 lines
␈↓ ↓⊗execute command (see command word below), an execute is generated.
␈↓ εKbit below. Top line of character prints on the line addressed.
␈↓ ↓⊗Then carriage return causes the interface to send column select of 2;
␈↓ εK This bit has no effect in graphics mode.
␈↓ ↓⊗line feed sends a line address (both parts) 14 greater than the
␈↓ εK
␈↓ ↓⊗previous line address sent. Both carriage return and line feed, if
␈↓ εK space/nospace: when this bit is on, characters are
␈↓ ↓⊗preceeded by a 177, print special characters instead of the above
␈↓ εK20 substituted on top of the line previously written; when off,
␈↓ ↓⊗functions.
␈↓ εKbit remainder of line is erased. In graphics mode this bit does
␈↓ ↓⊗
␈↓ εK this:
␈↓ ↓⊗Graphics word
␈↓ εK
␈↓ ↓⊗ ___________________________________________________________
␈↓ εK additive/replacement: When this bit is on, only 1 bits are
␈↓ ↓⊗|0 7|8 15|16 23|24 31|32 35|
␈↓ εK20 written, ORed with the bits already written; when off, 1's and
␈↓ ↓⊗| byte 1 | byte 2 | byte 3 | byte 4 | 02 |
␈↓ εKbit 0's are written clobbering previous data. CAUTION!: when
␈↓ ↓⊗|____________|_____________|____________|____________|______|
␈↓ εK(G) replacing, the bits at the beginning and end of the line
␈↓ ↓⊗
␈↓ εK segment you are writing should be the same as the previous
␈↓ ↓⊗The interface sends all 4 8-bit bytes directly to the disc's line
␈↓ εK data or bit lossage may occur.
␈↓ ↓⊗buffer with no modification.
␈↓ εK
␈↓ ↓⊗
␈↓ εK double width/single width: With this bit on, characters
␈↓ ↓⊗Command word
␈↓ εK10 are 5 bits wide with a 0 bit on the end (total 6 bits);
␈↓ ↓⊗ ___________________________________________________________
␈↓ εKbit characters are 10 bits wide with two 0 bits on the end when
␈↓ ↓⊗|0 7|8 15|16 23|2426|2729|3032|3335|
␈↓ εK the bit is off. CAUTION!: When using double width characters,
␈↓ ↓⊗| data 1 | data 2 | data 3 |op 1|op 2|op 3| 4 |
␈↓ εK do not exceed 43 characters in a line or the controller will
␈↓ ↓⊗|____________|____________|_____________|____|____|____|____|
␈↓ εK hang. In graphics mode this bit does this:
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗A command word causes the interface to send DD three command bytes
␈↓ εK10 erase: in graphics mode, if this bit is on, the screen will
␈↓ ↓⊗with the op-codes specified. The commands possible are as follows:
␈↓ εKbit be erased to the background selected when a channel select is
␈↓ ↓⊗
␈↓ εK(G) done.
␈↓ ↓⊗OP-CODE USE
␈↓ εK
␈↓ ↓⊗
␈↓ εK dark/light: When this bit is on, erase causes screen to
␈↓ ↓⊗ 0 Execute: Empties line buffer onto the disc at
␈↓ εK4 go dark and characters and graphic 1 bits are light. When off,
␈↓ ↓⊗ the position previously specified.
␈↓ εKbit erase goes to light and characters and graphic 1 bits are
␈↓ ↓⊗ dark.
␈↓ εK file in Read-Alter mode).
␈↓ ↓⊗
␈↓ εK 7 (This error code cannot occur.)
␈↓ ↓⊗ write/display directly: When this bit is on, operations go to
␈↓ εK 10 BAD RETRIEVAL. Some disk pointers have been garbaged
␈↓ ↓⊗2 the disc. When off, data is displayed once on the selected
␈↓ εK somewhere. This should not happen.
␈↓ ↓⊗bit channel and then goes away and previous data remains.
␈↓ εK 11 BAD RETRIEVAL. Slightly different version of above.
␈↓ ↓⊗
␈↓ εK 12 DISK IS FULL. (ENTER only)
␈↓ ↓⊗1 alphanumerics/graphics: When this bit is on, you are in
␈↓ εK ENTER: There is no more room on the disk.
␈↓ ↓⊗bit graphics mode; you are in alphanumeric mode when it is off.
␈↓ εK
␈↓ ↓⊗
␈↓ εKMtape UUO:
␈↓ ↓⊗
␈↓ εK 1 This causes the magnetic tape initialized on this channel to
␈↓ ↓⊗JMP Jump OP-CODE 20
␈↓ εK be rewound.
␈↓ ↓⊗ _________________________________ _______________ _________
␈↓ εK 3 This causes an end-of-file mark to be written on the tape.
␈↓ ↓⊗|0 17|18 29|30 35|
␈↓ εK 6 This causes the tape to be advanced one record.
␈↓ ↓⊗| A | unused | 20 |
␈↓ εK 7 This causes the tape to be backspaced one record.
␈↓ ↓⊗|_________________________________|_______________|_________|
␈↓ εK 10 This causes the tape to be advanced to the logical end of
␈↓ ↓⊗
␈↓ εK tape. Logical end of tape is signified by two consecutive
␈↓ ↓⊗ The processor jumps to absolute location A and continues
␈↓ εK end-of-file marks. The tape is left positioned after the
␈↓ ↓⊗executing. WARNING: This instruction is hazardous to your health.
␈↓ εK second mark by this operation.
␈↓ ↓⊗
␈↓ εK 13 This causes three inches of blank tape to be written. The
␈↓ ↓⊗Halt
␈↓ εK purpose of this is to cause a bad spot on the tape to be
␈↓ ↓⊗ ___________________________________________________________
␈↓ εK ignored. Perfectly blank tape looks like an end-of-record
␈↓ ↓⊗|0 29|30 35|
␈↓ εK mark to the controller and is ignored. The monitor
␈↓ ↓⊗| unused | X0 |
␈↓ εK automatically writes blank tape over bad spots on the tape.
␈↓ ↓⊗|_________________________________________________|_________|
␈↓ εK 16 This causes the tape to be advanced one file. The tape is
␈↓ ↓⊗␈↓ εK positioned after the end-of-file mark that terminates the
␈↓ ↓⊗␈↓ εK file.
␈↓ ↓⊗␈↓ εK 17 This causes the tape to be backspaced one file. The tape is
␈↓ ↓⊗␈↓ εK positioned before the end-of-file mark at the end of the
␈↓ ↓⊗␈↓ εK previous file.
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εKDevice Characteristics:
␈↓ ↓⊗␈↓ εK0 The device is a dectape and its directory is in core.
␈↓ ↓⊗␈↓ εK1 The device is the disk.
␈↓ ↓⊗␈↓ εK2 The device is the user disk pack (UDP).
␈↓ ↓⊗␈↓ εK3 The device is the line printer.
␈↓ ↓⊗␈↓ εK4 The device is a teletype which is attached to a job.
␈↓ ↓⊗␈↓ εK5 The device is a teletype which is in use.
␈↓ ↓⊗␈↓ εK6 The device is a TV camera.
␈↓ ↓⊗␈↓ εK7 The device is a DEC type 30 display. There
␈↓ ↓⊗␈↓ εK are none of these at Stanford.
␈↓ ↓⊗␈↓ εK8 The device has a long dispatch table, which means that
␈↓ ↓⊗␈↓ εK it will accept UUOs other than INPUT and OUTPUT, such
␈↓ ↓⊗␈↓ εK as MTAPE, USETO and LOOKUP.
␈↓ ↓⊗␈↓ εK9 The device is a paper tape punch.
␈↓ ↓⊗-------- QQ.RPG ------ 6 -----------␈↓ εK10 The device is a paper tape reader.
␈↓ ↓⊗ INPUT/OUTPUT
␈↓ εK11 The device is a dectape.
␈↓ ↓⊗
␈↓ εK12 the device is available to the job that gave the DEVCHR
␈↓ ↓⊗Data Modes:
␈↓ εK UUO.
␈↓ ↓⊗ 0 ASCII Buffered characters (7 bit byte pointer)
␈↓ εK13 The device is a magnetic tape.
␈↓ ↓⊗ 1 ASCII LINE Buffered characters (7 bit byte pointer)
␈↓ εK14 The device is a teletype.
␈↓ ↓⊗ 10 IMAGE Buffered words (36 bit byte pointer)
␈↓ εK15 The device has a directory. At Stanford, this means The
␈↓ ↓⊗ 13 IMAGE BINARY Buffered words (36 bit byte pointer)
␈↓ εK device is a dectape or the disk.
␈↓ ↓⊗ 14 BINARY Buffered words (36 bit byte pointer)
␈↓ εK16 The device can do input.
␈↓ ↓⊗ 16 DUMP RECORD Unbuffered
␈↓ εK17 The device can do output.
␈↓ ↓⊗ 17 DUMP Unbuffered
␈↓ εK18 The device has been assigned with the ASSIGN command.
␈↓ ↓⊗
␈↓ εK19 Some job has done an INIT or OPEN on this device.
␈↓ ↓⊗Status Bits:
␈↓ εK
␈↓ ↓⊗ 18 IOIMPM Improper mode.
␈↓ εK
␈↓ ↓⊗ 19 IODERR Device detected parity error.
␈↓ εK
␈↓ ↓⊗ 20 IODTER Device detected data error.
␈↓ εK
␈↓ ↓⊗ 21 IOBKTL Dectape block number out of bounds.
␈↓ εK
␈↓ ↓⊗ 22 IODEND End of file.
␈↓ εK
␈↓ ↓⊗ 23 IOACT Device is active.
␈↓ εK
␈↓ ↓⊗24-29 Unused or peculiar to the device.
␈↓ εK
␈↓ ↓⊗ 30 Synchronize buffered I/O.
␈↓ εK
␈↓ ↓⊗ 31 IOWC Inhibit system computation of output word count.
␈↓ εK
␈↓ ↓⊗32-35 Data mode.
␈↓ εK
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗Error Codes for LOOKUP, ENTER and RENAME with the Disk:
␈↓ εK
␈↓ ↓⊗ 0 NO SUCH FILE.
␈↓ εK
␈↓ ↓⊗ LOOKUP: File specified does not exist.
␈↓ εK
␈↓ ↓⊗ ENTER: Zero file name given.
␈↓ εK
␈↓ ↓⊗ RENAME: File LOOKUPed or ENTERed no longer exists.
␈↓ εK
␈↓ ↓⊗ 1 ILLEGAL PPN. (PPN specified has no UFD.)
␈↓ εK
␈↓ ↓⊗ 2 PROTECTION VIOLATION. File is protected from what you
␈↓ εK
␈↓ ↓⊗ tried to do.
␈↓ εK
␈↓ ↓⊗ 3 FILE BUSY.
␈↓ εK
␈↓ ↓⊗ LOOKUP: File is currently open in Read-Alter mode.
␈↓ εK
␈↓ ↓⊗ ENTER: File is currently being written.
␈↓ εK
␈↓ ↓⊗ RENAME: File is currently being read.
␈↓ εK
␈↓ ↓⊗ 4 FILE ALREADY EXISTS. (RENAME only)
␈↓ εK
␈↓ ↓⊗ RENAME: There is already a file with the new name given.
␈↓ εK
␈↓ ↓⊗ 5 NO FILE OPEN. (RENAME only)
␈↓ εK
␈↓ ↓⊗ RENAME: No successful LOOKUP or ENTER has been done yet.
␈↓ εK
␈↓ ↓⊗ 6 DIFFERENT FILE NAME SPECIFIED. (ENTER only)
␈↓ εK
␈↓ ↓⊗ ENTER: The file name does not match that of a LOOKUP
␈↓ εK
␈↓ ↓⊗ already done on this channel (attempt to open
␈↓ εK
␈↓ ↓⊗-------- QQ.RPG ------ 7 -----------␈↓ εK
␈↓ ↓⊗ MISCELLANEOUS
␈↓ εK 0 1 2 3
␈↓ ↓⊗
␈↓ εK 01234567012345670123456701234567
␈↓ ↓⊗ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____
␈↓ εK
␈↓ ↓⊗| 2| 5| 8| 11| 14| 17| 20| 23| 26| 29| 32| 35|
␈↓ εK000 ↓αβ∧¬επλ ∞∂⊂⊃∩∪∀∃⊗↔_→~≠≤≥≡∨
␈↓ ↓⊗| | | | | | | | | | | | |
␈↓ εK040 !"#$%&'()*+,-./0123456789:;<=>?
␈↓ ↓⊗|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
␈↓ εK100 @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]↑←
␈↓ ↓⊗|0 7|8 15|16 23|24 31|32 35| ␈↓ εK140 `abcdefghijklmnopqrstuvwxyz{|~}
␈↓ ↓⊗| 8 BITS | | | | | ␈↓ εK
␈↓ ↓⊗|_______________|_______________|_______________|_______________|_______|
␈↓ εK
␈↓ ↓⊗|0 6|7 13|14 20|21 27|28 34| |
␈↓ εKChannels for synthesizers in order of decreasing brightness:
␈↓ ↓⊗| 7 BITS | | | | | |
␈↓ εKB/W 36 37 34 33 35 32
␈↓ ↓⊗|_____________|_____________|_____________|_____________|_____________|_|
␈↓ εKColor 31 25 26 27 30 24
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗INSTRUCTION FORMAT
␈↓ εK
␈↓ ↓⊗ _________________ _______ _ _______ ___________________________________
␈↓ εK
␈↓ ↓⊗|0 8|9 12| |14 17|18 35|
␈↓ εK
␈↓ ↓⊗| OPCODE | AC |I| INDEX | ADDRESS |
␈↓ εK
␈↓ ↓⊗|_________________|_______|_|_______|___________________________________|
␈↓ εK
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗FLAGS IN LEFT HALF OF PC WORD
␈↓ εK
␈↓ ↓⊗ _________________________________________________________________________
␈↓ εK
␈↓ ↓⊗|0 | | 2| | | 5| | | 8| | | 11| |
␈↓ εK
␈↓ ↓⊗|OVER |CARRY|CARRY|FLOAT|BYTE |USER |IOT | THESE 4 BITS HAVE |FLOAT| NO |
␈↓ εK
␈↓ ↓⊗|FLOW | 0 | 1 |OVERF|INT |MODE |USER | UNKNOWN FUNCTIONS |UNDER| DIV.|
␈↓ εK
␈↓ ↓⊗|_____|_____|_____|_____|_____|_____|_____|____|____|____|____|_____|_____|
␈↓ εK
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗WORD SYMBOL
␈↓ εK
␈↓ ↓⊗0 JOBAC
␈↓ εK
␈↓ ↓⊗20 JOBDAC
␈↓ εK
␈↓ ↓⊗40 JOBUUO
␈↓ εK
␈↓ ↓⊗41 JOB41
␈↓ εK
␈↓ ↓⊗43 JOBENB
␈↓ εK
␈↓ ↓⊗44 JOBREL JOBPDL
␈↓ εK
␈↓ ↓⊗45 JOBPD1
␈↓ εK
␈↓ ↓⊗72 JOBHCU JOBPRT
␈↓ εK
␈↓ ↓⊗73 JOBPC JOBSAV
␈↓ εK
␈↓ ↓⊗74 JOBDDT
␈↓ εK
␈↓ ↓⊗75 JOBJDA
␈↓ εK
␈↓ ↓⊗114 JOBPFI
␈↓ εK
␈↓ ↓⊗116 JOBSYM
␈↓ εK
␈↓ ↓⊗117 JOBUSY
␈↓ εK-------- QQ.RPG ------ 8 -----------
␈↓ ↓⊗120 JOBSA
␈↓ εK FAIL
␈↓ ↓⊗121 JOBFF
␈↓ εK
␈↓ ↓⊗122 JOBS41
␈↓ εKSymbol Meaning Priority Level
␈↓ ↓⊗123 JOBEXM
␈↓ εK
␈↓ ↓⊗124 JOBREN
␈↓ εK + PLUS 1
␈↓ ↓⊗125 JOBAPR
␈↓ εK - (binary) MINUS 1
␈↓ ↓⊗126 JOBCNI
␈↓ εK * TIMES 2
␈↓ ↓⊗127 JOBTPC
␈↓ εK / DIVIDED-BY 2
␈↓ ↓⊗130 JOBOPC
␈↓ εK ∧ AND 3
␈↓ ↓⊗131 JOBCHN
␈↓ εK ∨ OR 3
␈↓ ↓⊗132 JOBFDV
␈↓ εK ≠ XOR 3
␈↓ ↓⊗133 JOBCOR
␈↓ εK ⊗ LEFT-SHIFT (logical) 4
␈↓ ↓⊗140 JOBDA
␈↓ εK - (unary) MINUS
␈↓ ↓⊗
␈↓ εK (two's complement) 5
␈↓ ↓⊗
␈↓ εK ¬ (unary) NOT
␈↓ ↓⊗USER INTERRUPT BITS
␈↓ εK (one's complement) 5
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗XD INTSWW,400000 ; INTERRUPT BEFORE SWAPPING
␈↓ εKNumeric IF's
␈↓ ↓⊗XD INTSWD,200000 ; INTERRUPT WHEN SWAP DONE
␈↓ εK IFE, IFN, IFG, IFL, IFGE, IFLE
␈↓ ↓⊗XD INTSHW,100000 ; INTERRUPT BEFORE SHUFFLING
␈↓ εK
␈↓ ↓⊗XD INTSHD,040000 ; INTERRUPT WHEN SHUFFLE COMPLETE
␈↓ εKText IF's
␈↓ ↓⊗XD INTTTY,020000 ; INTERRUPT ON TELETYPE INPUT
␈↓ εK IFIDN {text1}{text2}{text3}
␈↓ ↓⊗XD INTPTI,010000 ; INTERRUPT ON PSEUDO-TELETYPE INPUT
␈↓ εK IFDIF {text1}{text2}{text3}
␈↓ ↓⊗XD INTMAIL,004000 ; INTERRUPT ON MAIL
␈↓ εK
␈↓ ↓⊗XD INTWAIT,002000 ; INTERRUPT ON UUO COMPLETE
␈↓ εKSymbol IF's
␈↓ ↓⊗XD INTPTO,001000 ; INTERRUPT ON PSEUDO-TELETYPE OUTPUT
␈↓ εK IFDEF,IFNDEF ;If defined
␈↓ ↓⊗XD INTPAR,000400 ; PARITY ERROR INTERRUPT
␈↓ εK IFAVL,IFNAVL ;If value is immediately available
␈↓ ↓⊗XD INTCLK,000200 ; CLOCK INTERRUPT
␈↓ εK IFOP,IFNOP ;If defined as opdef
␈↓ ↓⊗XD INTINR,000100 ; IMP INTERRUPT BY RECEIVER
␈↓ εK IFMAC,IFNMAC If defined as macro
␈↓ ↓⊗XD INTINS,000040 ; IMP INTERRUPT BY SENDER
␈↓ εK
␈↓ ↓⊗XD INTIMS,000020 ; IMP STATUS CHANGE INTERRUPT
␈↓ εK
␈↓ ↓⊗XD INTINP,000010 ; IMP INPUT WAITING
␈↓ εK
␈↓ ↓⊗XD INTTTI,000004 ; INTERRUPT ON <ESC>I
␈↓ εK
␈↓ ↓⊗XD INTQXF,2 ;INTERRUPT ON Q XFER
␈↓ εK
␈↓ ↓⊗; INTERRUPT BIT ASSIGNMENTS - RH
␈↓ εK
␈↓ ↓⊗XD CNS,400000 ; INTERRUPT ON CONS TRAP
␈↓ εK
␈↓ ↓⊗XD POV,200000 ; INTERRUPT ON PDL OV
␈↓ εK
␈↓ ↓⊗XD ILM,20000 ; INTERRUPT ON ILL. MEM. REF.
␈↓ εK
␈↓ ↓⊗XD NXM,10000 ; INTERRUPT ON NON-EX. MEM.
␈↓ εK
␈↓ ↓⊗XD INTFOV,100 ; INTERRUPT ON FOATING OVERFLOW
␈↓ εK
␈↓ ↓⊗XD INTOV,10 ; INTERRUPT ON ARITHMETIC OVERFLOW
␈↓ εK
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗
␈↓ εK